Aspect-oriented Programming versus Reeection: a Rst Draft

نویسندگان

  • J Malenfant
  • P Cointe
چکیده

Reeection has a long history of dealing about some aspects of software components. In this short position paper, we compare and contrast reeection and aspect-oriented programming. Whilst reeection has recently focused on very speciic aspects of software components, namely implemen-tational usually segregated among structural (representation) and behavioral (execution) aspects, aspect-oriented programming wishes to broaden the spectrum of attributes of software taken into account. On the other hand, weaving the aspects into a coherent and faithful implementation of their prescriptions is by nature a reeective process which can be put into the hand of aspect-oriented programmers using reeection. Finally, a link can be made between aspect-oriented programming and the underinvestigated area of declarative reeection. 1 Context During the last fteen years, we have been involved in research on reeection in programming languages. Our contributions encompass: 1. object-oriented metamodels Coi87], 2. semantics of behavioral reeection in the context of object-oriented languages MDC96], 3. programming methodologies for the composition of metacomponents MMC95], 4. use of explicit metaclasses to describe properties of classes LC96]. Our interest is in methodologies and techniques to enhance the adaptability and the composability of object-oriented software components. 2 Reeection Reeection in computer science in general has been rst suggested in the context of artiicial intelligence where the construction of self-aware systems can be assimilated to the end goal of the eld (see the two papers of Perlis Per85, Per88]). In the context of programming languages, the seminal work of Brian Smith Smi82, Smi84] has been the departure point of a large research eeort both in the functional and the object-oriented programming community. It is not our goal to introduce reeection here; the reader is refered to the paper of Malenfant and Demers for more details DM95]. A general deenition of reeection is due to Smith WRM90, discussion during the workshop]: \An entity's integral ability to represent, operate on, and otherwise deal with its self in the same way that it represents, operates on and deals with its primary subject matter." In the eld of programming languages, this deenition has been further reene to the following BGW93]:

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Submission to Oopsla 2000 Workshop on Advanced Separation of Concerns in Object-oriented Systems Concern Oriented Programming Using Reeection

Building softwares in a concern oriented fashion can be splited in two main steps : rst deening each concern separately (or reusing existing ones) and then composing (i.e. integrating) those concerns together. Among existing approaches to support this development scheme, we are interested in reeection. This interest is particularly motivated by the natural separation between functional and non-...

متن کامل

Behavioral Re ection in a Prototype-Based Language

In MCD92], we have contributed a reeective model for a prototype-based language based on the lookup apply re-ective introspection protocol. Here, we pursue this work by including a reiication of continuations. Hence, we provide continuations as rst-class objects and convert our previous protocol to handle them. First-class continuations provide much more control over the current computation. Al...

متن کامل

Debugging by Remote Reeection

Reeection in an object-oriented system allows the structure of objects and classes to be queried at run-time, thus enabling \meta-object" programming such as program debugging. Remote Reeection allows objects in one address space to reeect upon objects in a diierent address space. Used with a debugger, remote reeection makes available the full power of object-oriented reeection even when the ob...

متن کامل

Aspect-Oriented Compilers

Aspect-oriented programming provides the programmer with means to cross-cut conventional program structures, in particular the class hierarchies of object-oriented programming. This paper studies the use of aspect orientation in structuring syntax directed compilers. Syntax-directed compilers are often speci ed by means of attribute grammars. Such speci cations are typically structured by produ...

متن کامل

Refactoring Aspect-Oriented Programs

Refactoring is the process of changing a program to improve its internal structure and reusability, without altering the external behavior of the program. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In this paper, we propose a systemic approach to refactoring aspect-oriented programs. To this end, we rst investigate the impact of existing object-orie...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996